Streaming data applications use various means to adapt to bandwidth limitations. For certain applications, such as real-time streaming video, however, there are fewer options due to the real-time constraints on the system. For real-time streaming video applications, a Quality of Service (QoS) software module may be implemented that limits the bandwidth available to the video stream. Often this bandwidth must be shared with other parts of the system that are also managed by the QoS module. If the QoS module cannot change other attributes of the video stream (such as quality or bit rate), as may happen if the stream is encoded once for several recipients of differing bandwidth capability, this type of bandwidth limitation will likely cause the video stream transmission rate to be slowed down when the limit is reached. However, since the video data is time-sensitive, video frames that arrive late at the receiver may be dropped.
It is within this context that embodiments of the present invention arise.